#include "pch.hpp"
#include "UiDefinition.hpp"

using namespace Engine;
using namespace Engine::Edit;




UiDefinition::UiDefinition(ProjectItem::weak_ptr parent, QString name)
	: ProjectItem(parent, name)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////




ProjectItem::Type UiDefinition::type() const
{
	return UiType;
}
///////////////////////////////////////////////////////////////////////////////////////////////////

QString UiDefinition::cssContent() const
{
	return m_cssContent;
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void UiDefinition::setCssContent(QString content)
{
	m_cssContent = content;
}
///////////////////////////////////////////////////////////////////////////////////////////////////




void UiDefinition::load(AbstractDomInputStream& stream)
{
	stream.openElement("ui");
	verify(stream.hasAttribute("name"));
	setName(stream.attribute("name"));

	stream.openElement("css_content");
	m_cssContent = stream.readText();
	stream.closeElement("css_content");
	stream.closeElement("ui");
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void UiDefinition::save(AbstractDomOutputStream& stream)
{
	stream.openElement("ui");
	stream.writeAttribute("name", name());
	stream.openElement("css_content");
	stream.writeCDataSection(m_cssContent);
	stream.closeElement();
	stream.closeElement();
}
///////////////////////////////////////////////////////////////////////////////////////////////////
